from flask import session, g

from models import db
from models.index import User, Cart


def icon_is_none(url):
    if url:
        return url
    else:
        return "/static/index/images/person_1.jpg"


def get_p_count(product):
    p_id = product.id
    user_id = session.get("user_id")
    cart = db.session.query(Cart).filter(Cart.user_id == user_id, Cart.product_id == p_id).first()
    return cart.quantity


def set_after_request_handle_fuc(app):
    """
    对flask对象 设置 每次调用视图函数之前 要执行的事
    :param app:
    :return:
    """

    @app.before_request
    def before_request():
        # 查询当前登录用户，如果未登录那么g.user为None，如果登陆了g.user就是当前登录对象
        # 之所以用g变量，是因为我们可以把需要给视图函数传递的参数，通过给g对象添加属性的方式让g进行携带
        # 然后在视图函数中就可以通过g.user提取出来，也就是说g能够帮我们在多个函数之间传递参数
        user_id = session.get("user_id")
        g.user = db.session.query(User).filter(User.id == user_id).first()
